Custom HTTP Headers যোগ করা

Java Technologies - স্প্রিং বুট ক্লায়েন্ট (Spring Boot Client) RestTemplate এর কনফিগারেশন |
104
104

Spring Boot ক্লায়েন্টে (Spring Boot Client) Custom HTTP Headers যোগ করা সাধারণত API-এর নির্দিষ্ট চাহিদা অনুযায়ী করা হয়। Spring Boot-এ এই কাজটি করা যায় RestTemplate, WebClient, বা Feign Client ব্যবহার করে।

নিচে বিভিন্ন পদ্ধতিতে Custom HTTP Headers যোগ করার প্রক্রিয়া দেখানো হলো:


১. RestTemplate ব্যবহার করে Custom HTTP Headers যোগ করা

উদাহরণ:

import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

@Service
public class ApiService {

    private final RestTemplate restTemplate;

    public ApiService(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    public String getDataWithHeaders() {
        String url = "https://jsonplaceholder.typicode.com/posts";

        // Custom Headers সেট করা
        HttpHeaders headers = new HttpHeaders();
        headers.set("Authorization", "Bearer your-token");
        headers.set("Custom-Header", "HeaderValue");

        // HttpEntity তৈরি করা
        HttpEntity<String> entity = new HttpEntity<>(headers);

        // API কল করা
        ResponseEntity<String> response = restTemplate.getForEntity(url, String.class, entity);

        return response.getBody();
    }
}

RestTemplate Bean কনফিগারেশন:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestTemplateConfig {

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

২. WebClient ব্যবহার করে Custom HTTP Headers যোগ করা

উদাহরণ:

import org.springframework.stereotype.Service;
import org.springframework.web.reactive.function.client.WebClient;

@Service
public class ApiService {

    private final WebClient webClient;

    public ApiService(WebClient.Builder webClientBuilder) {
        this.webClient = webClientBuilder.baseUrl("https://jsonplaceholder.typicode.com").build();
    }

    public String getDataWithHeaders() {
        return webClient.get()
                .uri("/posts")
                .header("Authorization", "Bearer your-token")
                .header("Custom-Header", "HeaderValue")
                .retrieve()
                .bodyToMono(String.class)
                .block();
    }
}

WebClient Bean কনফিগারেশন (ঐচ্ছিক):

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.function.client.WebClient;

@Configuration
public class WebClientConfig {

    @Bean
    public WebClient.Builder webClientBuilder() {
        return WebClient.builder();
    }
}

৩. Feign Client ব্যবহার করে Custom HTTP Headers যোগ করা

Feign Client Interface:

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;

@FeignClient(name = "apiClient", url = "https://jsonplaceholder.typicode.com")
public interface ApiClient {

    @GetMapping("/posts")
    String getPostsWithHeaders(
            @RequestHeader("Authorization") String token,
            @RequestHeader("Custom-Header") String customHeader
    );
}

Feign Client ব্যবহার:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class ApiService {

    @Autowired
    private ApiClient apiClient;

    public String getDataWithHeaders() {
        return apiClient.getPostsWithHeaders("Bearer your-token", "HeaderValue");
    }
}

Feign Configuration (Optional):

feign.client.config.default.loggerLevel=full
feign.client.config.default.connectTimeout=5000
feign.client.config.default.readTimeout=5000

৪. কাস্টম HTTP হেডারের ব্যবহার কোথায় প্রয়োজন হতে পারে?

  1. Authentication বা Authorization:
    • Authorization: Bearer <token> বা API-Key: <key>
  2. Custom Metadata:
    • ক্লায়েন্টের কিছু অতিরিক্ত তথ্য API-তে পাঠাতে।
  3. Tracking এবং Debugging:
    • Request-ID, Correlation-ID হেডার ব্যবহার করা হয়।
  4. Content Negotiation:
    • Accept, Content-Type হেডার পরিবর্তন করতে।

উপসংহার

Spring Boot-এ Custom HTTP Headers যোগ করার উপায় নির্ভর করে আপনি কোন HTTP ক্লায়েন্ট ব্যবহার করছেন। RestTemplate, WebClient, এবং Feign Client—সবগুলোতেই এটি খুব সহজে করা যায়।

যদি আপনার কোনো নির্দিষ্ট প্রয়োজনে সাহায্য দরকার হয়, জানাবেন। 😊

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion